pub fn convert_base(num_str: &str, to_base: u32) -> String {
    // num_str: 形如num(base)的字符串，num是base进制的数，to_base是目标进制
    // 实现⼀个算法，⽀持任意2-16进制数之间转换，如：2进制转7进制，7进制转16进制，15进制转8进制等。
    // 返回转换后的字符串
    let (num, base) = num_str.split_once('(').unwrap();
    let base = base.trim_end_matches(')').parse::<u32>().unwrap();
    let decimal_num = convert_to_decimal(num, base);
    let result = convert_to_base(decimal_num, to_base);
    result
}   

fn convert_to_decimal(num_str: &str, base: u32) -> u32 {
    let mut result = 0;
    for (i, c) in num_str.chars().rev().enumerate() {
        result += c.to_digit(base).unwrap() * base.pow(i as u32);
    }
    result
}

fn convert_to_base(num: u32, base: u32) -> String {
    // 将num转换为目标进制base（最大为16），a-f表示10-15
    let mut result = String::new();
    let mut num = num;
    while num > 0 {
        result.push(std::char::from_digit(num % base, base).unwrap());
        num /= base;
    }
    result.chars().rev().collect()
}
